To report errors, suggestions, or whatever, send e-mail to fab@kagi.com.
My Web site is at http://www.kagi.com/authors/fab/
Don’t bother copying the above data out of this document, for there are handier menu items inside my application (see Edit menu).
QuickestMirror™ documentation
The latest version of any program of mine is usually available on the Info-Mac and Umich archives and their mirrors.
This document has styles in it. You may view them with a text editor such as Tex-Edit by Tom Bender or Style (1.2.1 or later) by Marco Piovanelli, or Apple SimpleText by Tom Dowdy and who knows what else.
• PURPOSE
QuickestMirror lets you quickly and easily access data replicated (“mirrored”) on several Internet servers.
Do you usually access information replicated on several Internet servers? If you are a Macintosh user, the answer is probably yes. Whether you are trying to download a program from the Info-Mac archives, to grab the latest stuff by Peter N Lewis, or to browse the Apple Developer World site, the information you are looking for is available on several servers.
To solve the problem, I devised a new URL scheme that maps a single URL to a list of URLs. For instance:
QuickestMirror will show an ordinary list, dynamically sorted so that the faster sites drift toward the top.
• COMPATIBILITY ISSUES
◊ QuickestMirror can only be used under System 7 or later; if you try to start it up under older versions of the System you will get an error message.
◊ QuickestMirror requires InternetConfig (possibly 1.1 or later, although 1.4 or
later is recommended). It also requires Open Transport 1.1.1 or later to assess network
performance; MacTCP users will still be able to pick a server at random, which is better than a fixed selection.
QuickestMirror requires a 68020 processor. If there is demand, I will build a 68000 version for separate distribution.
• GENERAL INFO
◊ Backward compatibility: QuickestMirror transparently converts Info-Mac partial URLs such as those found in the Info-Mac Digests (“[Archived as...”) or within URL Manager (“/info-mac/...”), and Umich partial URLs (“/mac/...”) to standard fab URLs.
◊ Private mirrors: some sites restrict access to mirrors so that only subscribers can take advantage of them (one such instance is ftp.surfnet.nl). If you have access to a private mirror, you can add it to the QuickestMirror database using ResEdit. To add a private Info-Mac mirror, you would do the following:
1) create a new 'FABm' resource containing the newly added mirror site (keep the ID# that ResEdit assigns automatically, and leave the name blank):
Scheme ftp://
ResID 128 -- the ID for the “Info-Mac” 'POPm' resource
Insert a new field by selecting the asterisks and choosing Resource:Insert New Field(s).
2) edit the 'POPm' 128 resource: add a new ResID with the ID number ResEdit assigned automatically at 1).
◊ Scripting support: there is no full Object Model support, but there’s enough to let you automate the most commonly used functions: geturl and fetchurl are fully supported. For instance:
Also, I added the normalizeurl command to let people access the automatic conversion feature. (Note that geturl and fetchurl automatically perform this step.) This is a boon if you want to batch process old Info-Mac Digests with a script. So:
normalizeurl ("[Archived as /info-mac/text/tex-edit-plus-21.hqx; 676K]")
returns
"fab://info-mac.org?text/tex-edit-plus-21.hqx"
QuickestMirror also supports Frontier Menu Sharing.
◊ Vremya support
http://www.lava.net/~kirill/software/
The Vremya application by Kirill Levchenko can set your Macintosh system clock accurately using version 1 of the Network Time Protocol as described in RFC 1059 by D. Mills.
fab://ds.internic.net/rfc?rfc1059.txt
QuickestMirror stores a list of public Network Time servers via an experimental "x-ntp" URL notation. Of course Vremya does not currently support geturl events and the like, so I handle this as a special case.
◊ You can launch QuickestMirror multiple times in a networking environment, as well as from a locked disk (CD-ROMs are welcome; by the way, if this application is included on one it would be nice to send me a complimentary CD).
• SHORTCOMINGS in the current implementation
◊ Some sites (mirrors.aol.com for instance) are configured so as to reject attempts made by QuickestMirror to determine network performance (ICMP echo packets, that is). As a result, QuickestMirror will erroneously display these sites at the bottom of the list. This will be dealt with someday, but there is nothing I can do about this right now.
◊ Some (Info-Mac) sites may store items using MacBinary (.bin), as opposed to Binhex (.hqx) -- Walter Ian Kaye pointed this out long ago; this defeats the mirror scheme unless I include an additional field in the local database. Also, there is no way (short of connecting) to detect partial (Info-Mac) mirrors.
◊ QuickestMirror does not know in advance if you will be allowed to connect: if a remote site imposes a user limit (the highway has the best bandwidth, but you stop at the toll bar) or the link is broken you can go back to QuickestMirror, show the window, and pick the next best site.
◊ Joe Barwell urged me to download François Pottier’s Big Brother because he thinks our programs might cooperate for the benefit of all:
Of course usefulness would still be very limited because BB cannot check ftp links yet. Support for BB is incomplete, because I cannot tell BB to do the link check reporting. Unfortunately François is very busy studying, so these changes won’t happen soon. My proposal was as follows:
I've just mulled over the issue, and I'm not sure I can do the reporting myself without messing up the user interface.
Joe Barwell just wrote me:
-- begin quote
It would perhaps be preferable for BB to display the link-checking (though then you'd probably want it to switch to frontmost for that), as the alternative is something like what François & Alco Blom have arranged for Alco's URL Manager Pro, in which the bookmark links displayed in URLM's window get a tick or cross or whatever beside them when one has asked BB to check them. This might be awkward for QM, though, in which case you would want to get BB to display the diagnosis (assuming François can/will cooperate!).
-- end quote
Indeed, this would be awkward because my URL list is dynamically updated. I guess that the user would be hopelessly confused by those flipping ticks/crosses.
How about this:
[report all | report failures only | no report] -- enumeration, default report all
[show diagnostic boolean] -- default false
• DISCLAIMER
◊ “No warranties at all, either express or implied…” “All trademarks are held by their respective owners…” and all that stuff.
This application should do no damage, but if it does then you will be on your own. Let me know of any bugs you run into, anyway.
• THANKS TO…
◊ Dario Accornero, who granted permission to include a couple of sounds from his excellent “TheZone” arcade game (check out http://www.area.it/dappsoft/). Grazie!
◊ Joe Barwell, who provided with lots of useful comments, especially with regard to scripting, link checking, and more. Thanks mate!
◊ Professor Gianpiero Bussolin at the University of Torino taught me a mathematical technique that proved most useful when handling network code. (Although the original problem was completely different!)
◊ Bryan Christianson, of WhatRoute fame (check out http://crash.ihug.co.nz/~bryanc), without whom QuickestMirror wouldn’t probably exist: his technical expertise was a godsend from the outset. Thanks mate!
◊ Walter Ian Kaye sent me several thought-stimulating pointers. Thanks!
◊ Marten Kooistra, whose continued help grants him a round of grappa. :-)
◊ Alessandro Levi Montalcini, who found the time to give several useful suggestions.
◊ Jim Luther for his great MoreFiles library.
◊ Peter N Lewis & Quinn wrote the superb InternetConfig. (And much more…)
◊ Quinn’s Open Transport sample code and support on the Open Transport mailing list were invaluable.
◊ Rocco Moliterno put up with phone calls, not mentioning the system crashes.
◊ Masatsugu Nagata, who managed to find his usual share of bugs despite lacking Open Transport on his Macs.
◊ Alberto Ricci, for aesthetical suggestions regarding my icons, and beta testing.
◊ Paolo Sasso was very helpful, especially when I was bitten by the evil System Error #112.
◊ Giuseppe “Peppino” Ventura found lots of bugs as usual (a particularly nasty one shortly before release).
• ENJOY YOURSELF,
and remember that more and more shareware authors are going commercial or worse, going Windoze, because they receive almost nothing. If you don’t pay for good shareware software today, you are likely to pay much more in the future for exactly the same features, plus a nifty package, a good manual, and perhaps a copy protection scheme or a serial number; you know you don’t need the package, or the copy protection, and undoubtedly you will not want to waste your time reading manuals.